package com.tuozixuan.camel.rest;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.rest.RestBindingMode;
import org.springframework.stereotype.Component;

/**
 * 
 * https://www.cnblogs.com/d1012181765/p/15338436.html  
 * https://github.com/monodot/camel-demos/blob/master/examples/spring-boot/rest-service/src/main/java/xyz/tomd/cameldemos/springboot/restdsl/RestDslRouteBuilder.java  
 */
@Component
public class RestDemoRoute extends RouteBuilder {

	@Override
	public void configure() {
		
		restConfiguration().component("servlet").bindingMode(RestBindingMode.json);
		
		// 接口/camel/hello接受get请求并固定返回Bye World
//		from("rest:get:hello").transform().constant("Bye World");
//		from("rest:get:/hello").transform().constant("Bye World");
		
		// 下面的路由使用一个参数，该参数映射到具有键“me”的Camel头信息。
//		from("rest:get:hello/{me}")
//		  .transform().simple("Bye ${header.me}");
		
		// 以下示例将基本路径配置为“hello”，然后使用uriTemplates配置了两个REST服务。
//		from("rest:get:hello:/{me}")
//		  .transform().simple("Hi ${header.me}");
//
//		from("rest:get:hello:/french/{me}")
//		  .transform().simple("Bonjour ${header.me}");
		
		// 请求：http://localhost:8080/camel/getUserById?id=1 返回：User 1
//		from("rest:get:getUserById").transform().simple("User ${header.id}");
		
		// 根据请求参数调用指定的Bean获取User信息并返回
		//from("rest:get:getUserById?id=1").outputType(User.class).to("bean:userApi?method=getUserById");
		
//		rest().path("/getUserById?id=1").consumes("application/json")
//        .produces("application/json").get()
//        .outType(User.class).to("bean:userApi?method=getUserById");
		
		
	}

}
